The Go Programming Language

The Go Programming Language

  • Downloads:4509
  • Type:Epub+TxT+PDF+Mobi
  • Create Date:2021-03-05 03:18:16
  • Update Date:2025-09-06
  • Status:finish
  • Author:Alan A.A. Donovan
  • ISBN:0134190440
  • Environment:PC/Android/iPhone/iPad/Kindle

Summary

Go is an open-source programming language that makes it easy to build clean, reliable, and efficient software。 It has been winning converts from dynamic language enthusiasts as well as users of traditional compiled languages。 The former appreciate the robustness and efficiency that Go's lightweight type system brings to their code; the latter find Go's simplicity and fast tools a refreshing change。 Thanks to its well-designed standard libraries and its excellent support for concurrent programming, Go is fast becoming the language of choice for distributed systems。

The Go Programming Language is the definitive book on Go for the working programmer。 It assumes no prior knowledge of Go, nor any other specific programming language, so you'll find it an accessible guide whether you come from JavaScript, Ruby, Python, Java, or C++。

The book will quickly get you started using Go effectively from the beginning, and by the end, you will know how to use it well to write clear, idiomatic and efficient programs to solve real-world problems。 You'll understand not just how to use its standard libraries, but how they work, and how to apply the same design techniques to your own projects。

The earlier chapters will introduce you to the basic concepts of Go programming---numbers, strings, functions---while at the same time presenting important computer science concepts like recursion, and useful examples of graphics, UTF-8, and error handling。 The chapters on methods and interfaces will show you a new way to think about object-oriented programming; the chapter on concurrency explains why concurrency is so important in modern programming, and how Go helps you handle it well。 You'll also learn about Go's pragmatic but effective approach to testing; how to build, test, and manage projects using the go tool, and the art of metaprogramming using reflection。

The book contains hundreds of interesting and practical examples that cover the whole language and a wide range of applications。 The code samples from the book are available for download from gopl。io。

Download

Reviews

Alex

My attitude towards Go has been one of superior contempt in the past。 After all, I had visited the higher planes of programming, where one can see macros and monads in their eye watering brilliance, and thus had relegated Go to the unwashed masses。 On the few occasions I had used it--alas, professional programmers are merely mercenaries--it was surprisingly easy to write。 Almost enjoyable。 But no, I had seen the pure snows on the peaks of the Olympian mountains of abstraction。 Once you breath th My attitude towards Go has been one of superior contempt in the past。 After all, I had visited the higher planes of programming, where one can see macros and monads in their eye watering brilliance, and thus had relegated Go to the unwashed masses。 On the few occasions I had used it--alas, professional programmers are merely mercenaries--it was surprisingly easy to write。 Almost enjoyable。 But no, I had seen the pure snows on the peaks of the Olympian mountains of abstraction。 Once you breath the rarefied air of higher abstraction you can't wallow with the common folk。 So I continued to look down on Go and its users。I have crossed paths with this book a number of times。 I leafed through it, I even read the introduction, but I never picked it up properly。 This changed because, of all things, a book on Zen Buddhism。 You see, the book explained, us westerners are prone to dual thinking (thanks a bunch Plato and Aristotle)。 We like to think of things in clear cut categories (heh): black-white, good-bad, superior-inferior。 Gradually, as I made my way through that book, I realised more and more that I'd been a victim of this dual way thinking myself! And what better way to step out of it than trying a language I had labeled as "bad", "inferior" (and a bunch of other hasty cargo culted generalisations)? So I ordered "The Go Programming Language" (GoPL)。Let me say it upfront: GoPL is a *good* technical book。 This is how a book introducing a programming language should be written。 It treats the reader as an adult (even more so, as an engineer!)。 Go is rooted in the Unix world, and the authors want you to know that, God dammit。 It doesn't use cutesy examples with meme names for variables。 The examples are very much the seeds of applications you would use in the real world (also known as "tools" in Unix parlance)。 The nature of the Buddha is continuous。You can see this is a "Kernighan"--if we can use painters' names as nouns, we can use authors' names as nouns! The book's structure and exposition style echo those of "The C Programming Language" and "Software Tools (in Pascal)"。 The authors don't shy away from using programs they've written in earlier chapters to illustrate the behaviour of later programs。 They even *gasp* compose them in shell pipelines。 You see, the truth is GoPL also moonlights as a Unix philosophy book。 And it does a great job at it。 If you're so inclined, you'll learn more from this book than all the "do one thing and do it well" blog posts out there。The examples are engaging。 The first chapter is a whirlwind of Go and its standard library。 And it's a very convincing one。 It even has pictures of pretty 3d graphs。 In the browser! Oh, boy, tell me more about this Go thing you're talking about。 The rest of the chapters treat one topic at a time。 Most of the times in depth。 The final chapter, the one on unsafe programming is a taster of the dark world of juggling with chainsaws。 And an admonishment to not do so lightly。 The authors even have the audacity to lightly bash C。 You can't run from your past Mr。 Kernighan!And I can't be sure, but I think the authors were reading my mind (from the past nonetheless!), because whenever I had a question, the answer was close by--in the next paragraph or the next page。 Seriously, it's a well organised book。One thing I appreciate is that the authors are honest when they take shortcuts for the purpose of space saving: lack of error checking, brittle practices。 If only all programmers would be this honest。But this review is getting long, and a mercenary's day is busy。 Glue code doesn't write itself you know。 So, should you read this book? The answer depends on what you're looking for。Do you want to learn Go? What are you waiting for? Go for it!Do you want to write an introductory book for you own language or favourite language? Steal this book!Do you find Go uninteresting, but you're one of those weirdos who reads technical books just because? Give it a go。 You might even change you opinion about the language by the end of it。Do you want dine with the gods from the ambrosia of pure abstraction? I'm afraid you're out of luck。 But hey, at least you'll get a taste of what passes as programming amongst us, the unwashed masses。 。。。more

Zeyuan Hu

Good book on the subject。 No longer reading this because my current work doesn't require Go programming anymore。 Good book on the subject。 No longer reading this because my current work doesn't require Go programming anymore。 。。。more

Tony Zhang

Well-written - easy to read and follow and comprehensive。

Nikolai Golub

Good book for experienced programmers, which combines basics of Golang with idioms and explanations of why and how something should be used, without going too much into basics。

Steve

Good clear examples

Manuel

Perhaps the best material to work with Go without much other influence of language nor programming style (read: idiomatic Go)。

Felipe Rodrigues

Nice intro to GoThe book goes trough the main topics on go programing in a very interesting way。 It presents several different examples。 Worth the read。

Sanket

Great book to learn basics

Hai Sam

A classic book on Go programing language。It is very helpful for the beginer to advanced。I have put this book to re-read shelf, I think I will reread it soon。

Ivan Dimitrov

Awesome book with a lot of exercises which may help a lot to beginners as well and intermediate golang developers。 It is great also for experience developers who want to get familiar with the language。

Rich Uncle Pennybags

Short but very dense。 This is the one you want if you're already an experienced programmer but want to learn Go。 It does a good job of introducing not just syntax but also design philosophy and code style。 If you're new to programming in general, look elsewhere。 Short but very dense。 This is the one you want if you're already an experienced programmer but want to learn Go。 It does a good job of introducing not just syntax but also design philosophy and code style。 If you're new to programming in general, look elsewhere。 。。。more

Saurabh Jha

A nice introduction to the Go programming language。 Go is not a difficult language to learn but has some unique features which may take a while to get used to。 This book does a great job explaining those things and has some very good example programs that I use as models for my own programs。The only problem is this book feels wordy at places。 And working through some of the examples feel like a slog。 Some chapters like the one on Go tool could have been omitted altogether。Overall though, great b A nice introduction to the Go programming language。 Go is not a difficult language to learn but has some unique features which may take a while to get used to。 This book does a great job explaining those things and has some very good example programs that I use as models for my own programs。The only problem is this book feels wordy at places。 And working through some of the examples feel like a slog。 Some chapters like the one on Go tool could have been omitted altogether。Overall though, great book。 。。。more

Roger Booth

Fun to memorize the introductory programs。

Arina

Amazing introduction to a programming language。 One needs to know how to code in other languages, and in that case, the first chapter just gives you a taste of what it's like to code in Go。 The following chapters explain more about various language specifics。 And you are ready to go (ha!)。 The book is also a good reference, I've been using it a lot for advice on testing and concurrency。 The only reason that I did not finish it earlier was that I was left with the last chapters on reflection and Amazing introduction to a programming language。 One needs to know how to code in other languages, and in that case, the first chapter just gives you a taste of what it's like to code in Go。 The following chapters explain more about various language specifics。 And you are ready to go (ha!)。 The book is also a good reference, I've been using it a lot for advice on testing and concurrency。 The only reason that I did not finish it earlier was that I was left with the last chapters on reflection and low-level programming that I didn't need at work, and so I couldn't find time to read them。 The coding exercises (though I did only a fraction of them), especially from the first chapter, are a delight to code。 Great book! 。。。more

Henri Kotka

Solid overview of the language with good and clear examples for each topic。 The book is a bit old by now, but there hasn't been major changes to the core language so it still holds up well。 Solid overview of the language with good and clear examples for each topic。 The book is a bit old by now, but there hasn't been major changes to the core language so it still holds up well。 。。。more

Harry Su

Highly recommend it for folks that just get started with go

Lucas Burson

This is for experienced developers and will get you up to speed on the golang syntax and design philosophy。 The book moves quickly and the best way to fully comprehend is to practice practice practice。

Nikolay

The book you need to read if you program in go。 Very well written, lots of detail。 Book progressively goes in depth, I would assume even relatively new programmers will get smooth learning curve。 Was very nice to see last chapter cover cgo。 I will publish some details I found interesting in my blog: https://nikolayid。posthaven。com/the-g。。。 The book you need to read if you program in go。 Very well written, lots of detail。 Book progressively goes in depth, I would assume even relatively new programmers will get smooth learning curve。 Was very nice to see last chapter cover cgo。 I will publish some details I found interesting in my blog: https://nikolayid。posthaven。com/the-g。。。 。。。more

Matt Rozak

Great, fairly comprehensive into to golang。 Covers syntax and philosophy of writing in the style of golang。 Not for beginners, lots of concurrent code (although to be fair, concurrency in golang is a lot safer and easier to understand than most other languages concurrency constructs。)After reading this book you could write small, idiomatic Go programs。 My only real complaint: the book introduces go's unique interface/typing system, but doesn't really leave the reader with a great idea on how to Great, fairly comprehensive into to golang。 Covers syntax and philosophy of writing in the style of golang。 Not for beginners, lots of concurrent code (although to be fair, concurrency in golang is a lot safer and easier to understand than most other languages concurrency constructs。)After reading this book you could write small, idiomatic Go programs。 My only real complaint: the book introduces go's unique interface/typing system, but doesn't really leave the reader with a great idea on how to effectively use them in a maintainable way in large-scale codebases。 。。。more

Adron Hall

One of the best Go books out。 I *think* one of the first too。 I highly recommend this one for getting a solid understanding of the language!

Irving Bennett

The blue book of Go。 Excellent reference。

shubham

Exactly what you would expect from an author of The C Programming Language。 Succinct and very to the point。 Authors have clearly worked a lot with Go on production and have some pearls of wisdom that any Go programmer would be wise to adapt。

Karolis

Great introduction to the language。 It feels dry and scientific at times but if you stick with it and do all the examples the outcome will be a great intimacy with the Go language。 I recommend reading "Concurrency in Go: Tools and Techniques for Developers" after this one。 Great introduction to the language。 It feels dry and scientific at times but if you stick with it and do all the examples the outcome will be a great intimacy with the Go language。 I recommend reading "Concurrency in Go: Tools and Techniques for Developers" after this one。 。。。more

Hercules Merscher

Even though Go is not one of my favorite languages, this book is really well written and contains tons of examples and exercises。 Every programming book should be like it, with plenty of material for you to get your hands dirty practcing。 If you need or want to learn Go, I can't recommend this book enough! It is also a good reference book to remember some details。 Even though Go is not one of my favorite languages, this book is really well written and contains tons of examples and exercises。 Every programming book should be like it, with plenty of material for you to get your hands dirty practcing。 If you need or want to learn Go, I can't recommend this book enough! It is also a good reference book to remember some details。 。。。more

Augustin Grigorov

The definitive book on GO。 It gives you a great general understanding of the language。

Jarred Finney

Tired of reading multiple sources to put together a Go solution? Best book on Go programming I have read and well worth it to take your time and read it completely。 Creates a solid foundation of the language and valuable for goroutine usage and optimization。

Yu Chao

An in-depth tour about Golang。 A great book if you are already familiar with programming in a different language and want to get into Go。 For the last couple of chapters, some topics of concurrency will be discussed, so some OS knowledge is also required for reading this book。 (I was too lazy to do all the exercises, but I believe you'll become a pretty solid Go programmer if you do all the programming exercises!) An in-depth tour about Golang。 A great book if you are already familiar with programming in a different language and want to get into Go。 For the last couple of chapters, some topics of concurrency will be discussed, so some OS knowledge is also required for reading this book。 (I was too lazy to do all the exercises, but I believe you'll become a pretty solid Go programmer if you do all the programming exercises!) 。。。more

Go has excellent documentation & other resources available at golang。org, but for those looking for a printed book, this is the only one I recommend。 It has most accurate description of some of features of language, that not available in other books。 This is good for deepening your understanding of Go (I read many Go books, check my profile for review of them)This book is not for novice programmer, if you are a novice programmer, I strongly recommend you first check this topics in golang。org/doc Go has excellent documentation & other resources available at golang。org, but for those looking for a printed book, this is the only one I recommend。 It has most accurate description of some of features of language, that not available in other books。 This is good for deepening your understanding of Go (I read many Go books, check my profile for review of them)This book is not for novice programmer, if you are a novice programmer, I strongly recommend you first check this topics in golang。org/doc/ - Getting Started - A Tour of Go - How to write Go codeAfter that you can find other resource suitable for novice user in https://github。com/golang/go/wiki/LearnAt some point, you feel good at basics of language, now you can start this book, but make sure you finish all exercise to learn topic deeply。This book is not lengthy, but its dense and has a lot of content。 Try not to finish book as soon as possible。 You can write your own small project in parallel of reading this book。The last 2 chapters are Reflection and Low-Level Programming。 These are advanced topics that many Go users don't need, you can skip reading them until you need them for a project。 。。。more

Vilmibm

at the high bar of programming language textbooks。

Quanta

A must read for learning about and reference to the Go programming language。